export default {
    /**
     * 设置缓存
     * @param {string} key - 缓存键
     * @param {any} value - 缓存值
     * @param {number|null} expire - 过期时间，以秒为单位，默认为 null（不过期）
     */
    set(key, value, expire = null) {
        const dataToStore = {
            data: value,
        }
        if (expire) {
            dataToStore.expire = Date.now() + expire * 1000
        }
        uni.setStorageSync(key, JSON.stringify(dataToStore))
    },

    /**
     * 获取缓存
     * @param {string} key - 缓存键
     * @param {any|null} defaultValue - 默认值，默认为 null
     * @returns {any|null} - 缓存值或默认值
     */
    get(key, defaultValue = null) {
        const value = uni.getStorageSync(key)
        if (value) {
            try {
                const parsed = JSON.parse(value)
                if (parsed.expire && parsed.expire < Date.now()) {
                    this.remove(key)
                    return defaultValue
                }
                return parsed.data
            } catch (error) {
                // 处理解析错误，返回默认值
                return defaultValue
            }
        }
        return defaultValue
    },

    /**
     * 删除缓存
     * @param {string} key - 缓存键
     */
    remove(key) {
        uni.removeStorageSync(key)
    },

    /**
     * 清空缓存
     */
    clear() {
        uni.clearStorageSync()
    },
}
